﻿using FlowSequencer.Core.Sequencer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FlowSequencer.Core.FlowElements
{
    public class Flow
    {
        public Flow()
        {
            Lines = new List<Line>();
            Status = FlowStatus.Correct;
            OptimalSequence = new List<int>();
        }

        public int MaxCycles
        {
            get
            {
                return Lines.Max(x => x.Cycles);
            }
        }

        public List<int> OptimalSequence { get; set; }
        public FlowStatus Status { get; set; }
        public List<Line> Lines { get; set; }
        public string DownTimeTaskName { get; set; }
        public int DownTime { get; set; }

        public int MinorCycle { get; set; }

        public int MajorCycle { get; set; }
    }
}
